﻿package {
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.text.*;
	
	public class GiaoDien extends Sprite {
		//Đoạn khai báo biến
		var xucxac1,xucxac2,xucxac3:XucXac;
		var dia:dia_movieClip;
		var btnBatDau:buttonBatdau;
		var btnDung:buttonDung;
		var btnXemKQ:buttonXemKQ;
		var MangButton:Array;
		var kq1,kq2,kq3:uint;
		var dsDatTien:DSDatTien;
		var nc:NguoiChoi;
		var soTienDat:uint;
		var btn1k:tien1k;
		var btn5k:tien5k;
		var btn500:tien500;
		var TrangThai:Boolean=false;
		var dt1:mv500;
		var dt2:mv1k;
		var dt3:mv5k;
		var dsBtnTien:Array;
		var tienCL:TextField=new TextField();
		var f:Boolean;
		var mvLuatChoi:MV_LuatChoi;

		public function GiaoDien() {
			//Chèn quân xúc xắc
			ChenXucXac();
			//Chèn button đặt tiền
			ChenButtonDT();
			//Chèn đĩa
			ChenDia();
			//Chèn nút điều khiển
			ChenButtonDK();
			//Chèn các nút chọn tiền
			ChenBtnTien();
			//Số tiền mặc định khi chạy chương trình
			soTienDat=500;
			nc=new NguoiChoi("Untiled", 500000);

			tienCL.text="500000";
			tienCL.height=50;
			addChild(tienCL);
			tienCL.x=680;
			tienCL.y=-80;

			var btnLuat:BTLuatChoi=new BTLuatChoi();
			addChild(btnLuat);
			btnLuat.x=850;
			btnLuat.y=500;
			btnLuat.addEventListener(MouseEvent.CLICK, LuatChoiClicked);
			
			mvLuatChoi=new MV_LuatChoi();
			addChild(mvLuatChoi);
			mvLuatChoi.x=300;
			mvLuatChoi.y=200;
			mvLuatChoi.visible=false;
			f=false;
		}
		
		private function LuatChoiClicked(e:MouseEvent){
			if(f==false){
				mvLuatChoi.visible=true;
				f=true;
			}
			else{
				mvLuatChoi.visible=false;
				f=false;
			}
		}
		
		private function ChenBtnTien():void{
			btn1k=new tien1k();
			btn5k=new tien5k();
			btn500=new tien500();
			addChild(btn500);
			btn500.x=663;
			btn500.y=-10;
			btn500.addEventListener(MouseEvent.CLICK, onChonTienClicked);
			addChild(btn1k);
			btn1k.x=752;
			btn1k.y=-10;
			btn1k.addEventListener(MouseEvent.CLICK, onChonTienClicked);
			addChild(btn5k);
			btn5k.x=837;
			btn5k.y=-10;
			btn5k.addEventListener(MouseEvent.CLICK, onChonTienClicked);
		}
		private function ChenXucXac():void {
			xucxac1=new XucXac(1);
			xucxac2=new XucXac(2);
			xucxac3=new XucXac(3);
			addChild(xucxac1.xx);
			addChild(xucxac2.xx);
			addChild(xucxac3.xx);
			
		}
		private function ChenButtonDT():void {
			MangButton=new Array();
			for (var i:uint=1; i<=6; i++) {
				var btnDatTien:ButtonDatTien=new ButtonDatTien(i);
				addChild(btnDatTien.btnDat);
				btnDatTien.btnDat.gotoAndStop(i+12);
				MangButton[i]=btnDatTien;
			}
		}
		private function ChenDia():void {
			dia=new dia_movieClip();
			addChild(dia);
			dia.x=-180;
			dia.y=338;
			dia.gotoAndStop(2);
		}
		private function ChenButtonDK():void {
			//Chèn nút Bắt Đầu
			btnBatDau=new buttonBatdau();
			addChild(btnBatDau);
			btnBatDau.x=-195;
			btnBatDau.y=258;
			btnBatDau.addEventListener(MouseEvent.CLICK, onBatDauClicked);
			//Chèn nút Dừng
			btnDung=new buttonDung();
			addChild(btnDung);
			btnDung.x=-185;
			btnDung.y=258;
			btnDung.addEventListener(MouseEvent.CLICK, onDungClicked);
			btnDung.visible=false;
			//Chèn nút Xem kết quả
			btnXemKQ=new buttonXemKQ();
			addChild(btnXemKQ);
			btnXemKQ.x=-185;
			btnXemKQ.y=258;
			btnXemKQ.addEventListener(MouseEvent.CLICK, xemKQClicked);
			btnXemKQ.visible=false;
		}
		//Hàm xử lý khi Click vào nút Bắt Đầu
		private function onBatDauClicked(e:MouseEvent) {
			XoaDongTien();
			BatDau();
		}
		//Hàm xóa đi các đồng tiền được đặt ở lần chơi trước.
		private function XoaDongTien():void{
			for each(var item in dsBtnTien){
				item.visible=false;
			}
		}
		//Hàm khởi tạo lại các giá trị khi nhấn nút bắt đầu.
		private function BatDau():void{
			LayKQ();
			dsDatTien=new DSDatTien();
			dsBtnTien=new Array();
			dia.visible=true;
			dia.gotoAndPlay(1);
			btnBatDau.visible=false;
			btnDung.visible=true;
			btnXemKQ.visible=false;
			for (var i:uint=1; i<=6; i++) {
				MangButton[i].btnDat.gotoAndStop(i+12);
			}
			TrangThai=true;
		}
		//Hàm lấy ngẫu nhiên kết quả của 3 quân xúc xắc
		private function LayKQ():void {
			kq1=xucxac1.Xoay();
			xucxac1.xx.gotoAndPlay(1);
			kq2=xucxac1.Xoay();
			xucxac2.xx.gotoAndPlay(3);
			kq3=xucxac1.Xoay();
			xucxac3.xx.gotoAndPlay(5);
		}
		//Hàm xử lý khi Click vào nút Dừng
		private function onDungClicked(e:MouseEvent) {
			xucxac1.xx.gotoAndStop(7);
			xucxac2.xx.gotoAndStop(7);
			xucxac3.xx.gotoAndStop(7);
			dia.gotoAndStop(1);
			btnBatDau.visible=false;
			btnDung.visible=false;
			btnXemKQ.visible=true;
			ButtonDT();

		}
		private function ButtonDT():void {
			for (var i:uint=1; i<=6; i++) {
				MangButton[i].btnDat.gotoAndStop(i);
				MangButton[i].btnDat.addEventListener(MouseEvent.CLICK, onDatTien);
			}
		}
		//Hàm xử lý khi Click vào nút Xem kết quả
		private function xemKQClicked(e:MouseEvent) {
			xucxac1.xx.gotoAndStop(kq1);
			xucxac2.xx.gotoAndStop(kq2);
			xucxac3.xx.gotoAndStop(kq3);
			//dia.visible=false;
			for (var i:uint=1; i<=6; i++) {
				if (kq1==i||kq2==i||kq3==i) {
					MangButton[i].btnDat.gotoAndStop(i+6);
				} else {
					MangButton[i].btnDat.gotoAndStop(i+12);
				}
				MangButton[i].btnDat.removeEventListener(MouseEvent.CLICK, onDatTien);
			}
			
			nc.tien=dsDatTien.KiemTraThang(kq1, kq2, kq3, nc);
			tienCL.text=" "+nc.tien+" ";
			trace("Người chơi "+ nc.ten+ " có " +nc.tien);
			btnXemKQ.visible=false;
			btnBatDau.visible=true;
		}
		private function onChonTienClicked(e:MouseEvent){
			if(e.currentTarget==btn500){
				soTienDat=500;
			}
			else if(e.currentTarget==btn1k){
				soTienDat=1000;
			}
			else if(e.currentTarget==btn5k){
				soTienDat=5000;
			}
		
		}
		private function onDatTien(e:MouseEvent) {
			var stt:uint=e.currentTarget.cardType;
			var dt:DatTien;
			var l:uint =dsDatTien.SoLanDat(stt, soTienDat);
			var soLan=dsDatTien.SoLanNguoiChoiDat(nc.ten);
			if(nc.tien>=soTienDat&&l<14&&soLan<=30){
				if(soTienDat==5000&&l>=10){
					return;
				}
				var t:uint=nc.tien-soTienDat;
				nc.tien=t;
				dt=new DatTien(new NguoiChoi(nc.ten, t), stt, soTienDat);
				tienCL.text=" "+t+" ";
				dt.Xuat();
				dsDatTien.ThemDatTien(dt);
				HienThiDatTien(stt, soTienDat);
			}
		}
		private function HienThiDatTien(stt:int, tien:int):void{
			var l:uint =dsDatTien.SoLanDat(stt, tien);
			var c:uint=0;
			if(l>7){
				c=1;
			}
			switch(stt){
				case 1:
					if(tien==500){
						dt1=new mv500();
						dsBtnTien.push(dt1);
						addChild(dt1);
						dt1.x=45+15*c;
						dt1.y=280+c*90-l*7;
					}else if(tien==1000){
						dt2=new mv1k();
						dsBtnTien.push(dt2);
						addChild(dt2);
						dt2.x=60-15*c;
						dt2.y=110+c*90-l*7;
					}else{
						dt3=new mv5k();
						dsBtnTien.push(dt3);
						addChild(dt3);
						dt3.x=35;
						dt3.y=220-l*7;
					}
					break;
				case 2:
					if(tien==500){
						dt1=new mv500();
						dsBtnTien.push(dt1);
						addChild(dt1);
						dt1.x=95+c*30;
						dt1.y=50-l*7;
					}else if(tien==1000){
						dt2=new mv1k();
						dsBtnTien.push(dt2);
						addChild(dt2);
						dt2.x=265-c*50;
						if(l>7){
							dt2.y=0-l*7;
						}
						else{
							dt2.y=-55-l*7;
						}
						
					}else{
						dt3=new mv5k();
						dsBtnTien.push(dt3);
						addChild(dt3);
						dt3.x=170;
						dt3.y=-30-l*7;
					}
					break;
				case 3:
					if(tien==500){
						dt1=new mv500();
						dsBtnTien.push(dt1);
						addChild(dt1);
						dt1.x=340+c*55;
						dt1.y=-55+c*50-l*7;
					}else if(tien==1000){
						dt2=new mv1k();
						dsBtnTien.push(dt2);
						addChild(dt2);
						dt2.x=505-c*30;
						dt2.y=50+c*5-l*7;
					}else{
						dt3=new mv5k();
						dsBtnTien.push(dt3);
						addChild(dt3);
						dt3.x=435;
						dt3.y=-30-l*7;
					}
					break;
				case 4:
					if(tien==500){
						dt1=new mv500();
						dsBtnTien.push(dt1);
						addChild(dt1);
						dt1.x=540+20*c;
						dt1.y=110+90*c-l*7;
					}else if(tien==1000){
						dt2=new mv1k();
						dsBtnTien.push(dt2);
						addChild(dt2);
						dt2.x=560-20*c;
						dt2.y=265+90*c-l*7;
					}else{
						dt3=new mv5k();
						dsBtnTien.push(dt3);
						addChild(dt3);
						dt3.x=572;
						dt3.y=205-l*7;
					}
					break;
				case 5:
					if(tien==500){
						dt1=new mv500();
						dsBtnTien.push(dt1);
						addChild(dt1);
						dt1.x=515-c*30;
						dt1.y=370+c*80-l*7;
					}else if(tien==1000){
						dt2=new mv1k();
						dsBtnTien.push(dt2);
						addChild(dt2);
						dt2.x=335+c*55;
						if(l>7){
							dt2.y=505-l*7;
						}
						else{
							dt2.y=475-l*7;
						}
						
					}else{
						dt3=new mv5k();
						dsBtnTien.push(dt3);
						addChild(dt3);
						dt3.x=445;
						dt3.y=435-l*7;
					}
					break;
				case 6:
					if(tien==500){
						dt1=new mv500();
						dsBtnTien.push(dt1);
						addChild(dt1);
						dt1.x=265-c*45;
						dt1.y=475+c*35-l*7;
					}else if(tien==1000){
						dt2=new mv1k();
						dsBtnTien.push(dt2);
						addChild(dt2);
						dt2.x=85+c*35;
						dt2.y=370+c*80-l*7;
					}else{
						dt3=new mv5k();
						dsBtnTien.push(dt3);
						addChild(dt3);
						dt3.x=165;
						dt3.y=440-l*7;
					}
					break;
				default:
					break;
			}
			
		}
	}

}